package com.example.book;

import com.example.book.BookInfo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

@RequestMapping("/book")
@RestController
public class BookController {
    @RequestMapping("/getBookList")
    public List<BookInfo> getBookList(){
        // 1.获取图书的数据
        // 2. 对图书的数据做一些修改
        // 3. 返回数据
        // mock 表示虚拟的,假的数据
        List<BookInfo> bookInfos = mockData();
        for(BookInfo bookInfo : bookInfos){
            if(bookInfo.getStatus() == 1){
                bookInfo.setStatusCN("可借阅");
            }else{
                bookInfo.setStatusCN("不可借阅");
            }
        }

        return bookInfos;
    }

    private List<BookInfo> mockData() {
        // 优化技巧:对于已知数据量大小或者是大概知道数据量大小,在创建list时,就指定初始化容量大小
        List<BookInfo> bookInfos = new ArrayList<>(15);
        for(int i = 0;i < 15;i++){
           BookInfo bookInfo = new BookInfo();
           bookInfo.setId(i);
           bookInfo.setBookName("图书" + i);
           bookInfo.setAuthor("作者" + i);
           // 图书数量
           bookInfo.setCount(new Random().nextInt(200));
           bookInfo.setPrice(new BigDecimal(new Random().nextInt(100)));
           bookInfo.setPublish("出版社" + i);
           bookInfo.setStatus(i % 5 == 0 ? 2 : 1);
           bookInfos.add(bookInfo);
        }

        return bookInfos;
    }
}
